function [primaryPathTable, path] = drawTheMainPath(s, d, disp_loc, matrix)
    disp('The Source : ');
        disp(s);
        [xS,yS]=find_Coordinates(s, disp_loc);
        plot(xS, yS, '*');
        sender = s;
    disp('The Destination : ');
        disp(d);
        [xD,yD]=find_Coordinates(d, disp_loc);
        plot(xD, yD, '*');
        primaryPathTable = zeros(1,1); 
        nextHop = 0;
        snd = -1;
        noPath = 1;
        counter = 1;   
        primaryPathTable(counter) = sender;
        counter = counter + 1;
        nextHop = findMainPath(primaryPathTable, sender, d, disp_loc, matrix);
        while nextHop ~= d && noPath == 1 && nextHop ~= snd && nextHop ~= -1                                   
                primaryPathTable(counter) = nextHop;
                counter = counter + 1; 
                snd = sender;
                sender = nextHop;
                nextHop = findMainPath(primaryPathTable, sender, d, disp_loc, matrix);        
        end              
            primaryPathTable(counter) = d;
        if nextHop == snd || nextHop == -1           
               noPath = -1;
        end
        if noPath ~= -1 
            r = 0;
            g = 0;
            b = 1;  
            %The path between the source and the destination.
            drawPath(primaryPathTable, disp_loc, r, g, b); 
            path = 1;        
        else
            disp('There is no path (This is a disconnected graph)');
            path = 0;
        end; 
end